/*
 * Expression.h
 *
 *  Created on: 05/05/2010
 *      Author: rodolfo
 */

#ifndef EXPRESSION_H_
#define EXPRESSION_H_
#include <string>
typedef enum
{
    MULTOP, DIVOP, REMOP, PLUSOP, MINOP, LTOP, GTOP, LEOP, GEOP, EQOP, NEOP, ANDOP, OROP, SIASSIG, DIASSIG, REASSIG, PLASSIG, MIASSIG, MUASSIG
} BinaryOperators;
typedef enum
{
    UPLUS, UMINUS, BITNOT, UNEGAT, PLUSPLUS, MINUSMINUS, SZEOF
} UnaryOperators;
class Expression
{
public:
    enum ExpType
    {
        constantExp, strExp, identifierExp, binExp, unExp, castExp, decExp
    } kind;
    std::string value;
    Expression();
    Expression ( ExpType kind );
    virtual ~Expression();
};

#endif /* EXPRESSION_H_ */
